Sistemi Informativi — Appunti TiTilda

Indice

Sistemi Informativi

Capitolo Uno: Dati

I dati sono sempre più importanti all’interno del sistema informativo aziendale. Secondo la Piramide DIKW è possibile dividere i dati e le informazioni in:

“Piramide DIKW”

Capitolo Due: Organizzazioni

2.1 Risorse

Le risorse sono ciò con cui un’organizzazione opera, sia materiale che immateriale, e sono divise in:

Le risorse hanno un ciclo di vita:

2.2 Processi

I processi sono un’insieme di attività che l’organizzazione svolge per gestire il ciclo di vita di una risorsa.

Piramide di Anthony

Fornisce una classificazione dei processi e della applicazioni.

La tabella si basa su tre livelli:

Modello di Porter

Questo modello considera esclusivamente i processi di livello operativo. Le attività sono divise in:

Capitolo Tre: Sistemi informativi

I sistemi informativi sono un insieme di procedure, metodi e strumenti dedicati allo svolgimento di alcune funzioni per raggiungere un risultato. Il sistema di alimenta di eventi basati da dati, li trasforma in informazioni tramite dei processi.

Un sistema informatico è un componente del sistema informativo. Il sistema IT per mette di elaborare, archiviare e gestire le informazioni secondo le Business Rules.

I sistemi informativi sono divisi in:

I dati sono classificabili in base al livello (operativo/controllo/strategico). I dati operativi sono ben strutturati, e in alti volume e provenienti dall’interno. Andando verso il livello strategico i dati diventano sempre più aggregati, il formato potrebbe essere meno strutturato e potrebbero provenire anche da fonti esterne.

3.1 Base di Dati

I sistemi informativi sono applicazioni che interagiscono con basi di dati. Le interazioni solitamente avvengono con le transazioni.

A seconda delle operazioni i sistemi si identificano come OLTP e OLAP.

OLTP

I sistemi OLTP (OnLine Transaction Processing) sono sistemi che trattano operazioni basate su un numero elevato di transazioni brevi e online. Questi sistemi sono molto rapidi e sono idonei alla gestione di processi di livello operativo e di controllo.

OLAP

I sistemi OLAP (OnLine Analytical Processing) sono sistemi che trattano grandi quantità di dati storici che si basano su poche transazioni complesse che aggregano diversi dati e hanno bisogno di molto tempo per essere processate. Questi sistemi sono utilizzati per l’elaborazioni di dati a livello di pianificazione e strategico.

Un modello OLAP è rappresentato da un Modello Multidimensionale e le informazioni sono rappresentata da un ipercubo, formato da n dimensioni dove ogni dimensione permette di fare un’analisi. Gli elementi di una base di dati multidimensionali sono:

Le dimensioni possono essere numerose e organizzate in maniera gerarchica, basate su dipendenze funzionali.

I sistemi OLAP godono delle proprietà FASMI:

Altre caratteristiche del DW sono:

3.2 Organizzazione e IT

Le scelte all’interno dell’azienda possono avere impatto sulle scelte tecnologiche (Requirements Pull) e derivano spesso dall’esigenza di nuove funzionalità o migliorare le funzionalità attuali. In altri casi i cambiamenti delle nuove tecnologie possono portare a scelte nuove organizzative (Technology Push).

Capitolo Quattro: Enterprise Architecture (EA)

L’Enterprise Architecture è usato per analizzare e descrivere lo stato attuale e futuro di un’azienda. L’EA fornisce una panoramica dei processi, dei sistemi, delle tecnologie e delle capacità dell’azienda.

4.1 Framework di Zachman

Questa architettura viene descritta dal Framework di Zachman che utilizza una matrice per descrivere l’EA. Zachman utilizza le colonne per definire gli Aspetti da analizzare:

Le righe invece indicano i Punti di Vista che possono interessare gli stakeholder. Ogni riga introduce quindi dei vincoli sul sistema.

L’intersezione tra le righe e le colonne sono definite Viste e forniscono le informazioni su un particolare aspetto in base ad un punto di vista.

Capitolo Cinque: Elementi Tecnologici

Le tecnologie si possono dividere in tre livelli:

5.1 Livello Applicativo

A livello applicativo le tecnologie supportano i processi operazionali e informazionali. L’insieme delle tecnologie a livello applicativo viene detto portafoglio applicativo ed è costituito da:

Le applicazioni sono strutturate in livelli logici detti layer:

Data la complessità della realizzazione (make) di applicazioni si predilige l’acquisto (buy), soprattutto di applicazioni come ERP e CMS.

ERP

Gli ERP sono software che offrono moduli a supporto del sistema operazionale. Le proprietà che contraddistinguono gli ERP sono:

I moduli possono essere poi divisi in tre categorie:

CRM

I CRM sono una suite di software che supportano le organizzazioni nelle interazione con i clienti. Questi software aiutano a capire i bisogni e i comportamenti degli utenti, migliorandone l’interazione. Questi sistemi sono utili in contesti con una forte relazione con la clientela.

Il CRM ha tre componenti principali:

5.2 Livello di Piattaforma

L’implementazione delle applicazioni richiede l’utilizzo di componenti di supporto divise in quattro categorie:

5.3 Livello di Architettura Fisica

Questo livello indica l’architettura fisica che hosta l’applicazione.

Capitolo Sei: Analisi dei Dati

I dati sono essenziali per supportare i processi decisionali all’interno dell’azienda. Bisogna quindi essere in grado di aggregare e interrogare i dati per analizzare ed estrarre eventuali correlazioni. Alcuni strumenti di supporto alle decisioni sono:

I dati a supporto delle attività strategiche e decisionali si caratterizzano per:

6.1 Data Warehouse

il Data Warehouse è una base di dati di tipo OLAP che si distingue dai tradizionali DBMS che sono sistemi di tipo OLTP, i quali sono caratterizzati da un gran numero di operazioni brevi.

All’interno del data warehouse è possibile individuare diversi basi di dati organizzati in maniera gerarchica.

Al primo livello si trovano le sorgenti, ovvero le fonti che popolano il DW, come il la base di dati operazionale e basi di dati esterne. Queste sorgenti vengono sottoposte an operazioni dette ETL (Extraction, Transformation e Loading) che trasformano i dati dalle sorgenti in base alla struttura multidimensionali dell’OLAP.

A livello intermedio può esistere una base di dati intermedia detta Staging Area

In fine si trovano i Data Mart ovvero dei piccoli data warehouse tematici che contengono un estratto/vista delle informazioni del data warehouse. Questa divisione dei dati viene svolta in quanto il data warehouse può essere molto grande e i data contenuti non interessano a tutti gli utenti

Durante il processo ETL di estrazione, vengono definiti quali e come (aggregare, copiare, etc) devono essere estratti i dati. L’estrazione può essere statica se vengono considerati tutti i dati dei sorgenti; Incrementale se vengono presi in considerazione solo i dati creati a partire dall’ultimo aggiornamento. I dati possono subire alcune trasformazioni come:

Le operazioni ETL sono documentate da Metadati che raccolgono:

Modello Concettuale

I Data Warehouse vengono rappresentati tramite il Dimensional Fact Model (DFM) dove:

Modello Logico

Definito il modello concettuale esso deve essere memorizzato in un DBMS. Alcuni esempi sono:

Per mappare la base multidimensionale è necessario definire le tabelle. Per fare ciò esistono due approcci:

Operazioni

I Data Warehouse comprende un’insieme di tecniche per analizzare i dati:

6.2 Data Mining

Il Data Mining è una tecnica che permette di riconoscere ed estrarre in modo automatico informazioni utili dai dati.

Il Data Mining si basa sulle seguenti fasi:

Le funzioni di Data Mining possono essere di diverse categorie:

L’estrazione di informazioni dai dati può avvenire tramite:

6.3 Process Discovery

Il Process Discovery è una tecnica che permette di estrarre i processi da un insieme di dati, solitamente da un log di eventi.

Le relazioni che possono esistere tra gli eventi sono:

Questa analisi permette di analizzare la frequenza delle attività, durata delle attività, la sequenza delle attività e la relazione tra le attività. Queste informazioni possono essere utilizzate per migliorare i processi, identificare i problemi e le opportunità.

Capitolo Sette: Tecnologie Livello Piattaforma

Le tecnologie a livello piattaforma forniscono l’infrastruttura, gli strumenti e i servizi che consentono lo sviluppo. Un sistema informativo è formato da diversi moduli applicativi che realizzano delle funzionalità. Tali moduli devono essere collegati tra di loro per permettere la collaborazione.

E’ importante che tra i vari moduli ci sia un buon flusso informativo perché

Spesso il sistema informativo aziendale deve comunicare con sistemi di aziende esterne. E’ probabile che questi sistemi siano differenti, bisogna quindi trovare tecniche per collaborare efficacemente.

7.1 Tecniche di Integrazione

Per poter coordinare attività intra-organizzative e inter-organizzative bisogna adottare tecniche di integrazione quali:

Integrazione a Livello Dati

Per garantire incongruenze tra dati è essenziale che sia presente un’unica sorgente condivisa.

Una prima soluzione potrebbe essere quella di utilizzare un’unica base di dati comune dove ogni operazione è immediatamente visibile agli altri applicativi. Questa soluzione risulta essere radicale in quanto potrebbe essere necessario ripensare interamente il sistema attuale.

Una soluzione più flessibile consiste nell’introdurre un middleware che garantisce la congruenza tra i dati presenti in diversi database in caso di duplicazione. Il middleware si occupa anche di uniformare il formato e la semantica dei dati provenienti da db differenti.

I problemi che si originano dall’integrazione dei dati sono:

Integrazione a livello di Logica Applicativa

Un altro approccio consiste nel mettere in comunicazione diretta diversi applicativi. Questo approccio non è sempre possibile e dipende dall’apertura dell’applicativo.

Integrazione a Livello di Presentazione

Questo approccio è possibile in applicativi modulari dove il frontend è separato dal backend ed è quindi possibile modificare il client per interagire con funzioni lato server di altri applicativi.

7.2 Modelli di Integrazione delle Applicazioni

L’integrazione delle tecniche di integrazione può avvenire mediante diversi modelli:

Architettura Punto-a-Punto

In questo modello ogni applicazione è connessa in maniera diretta alle altre tramite API personalizzate. Questa architettura porta porta i singoli sistemi a comunicare in maniera indipendente, senza un intermediario centralizzato.

La logica di integrazione viene codificata internamente a ciascun sistema rendendo difficile la sostituzione di uno dei componenti. Questa soluzione risulta poco scalabile in quanto, per ogni applicazione, sono presenti N-1 interfacce. Questo porta a dover implementare N^2 interfacce, dove N è il numero di applicazioni coinvolte.

Architettura Hub-and-Spoke

Questo modello di basa sull’introduzione di un hub centrale a cui vengono collegati i vari sistemi tramite adattatori (spoke). In questo modo il collegamento tra i vari moduli viene gestito da un componente apposito. Questo permette di astrarre la comunicazione che non deve essere sviluppata ad-hoc per ogni componente.

Questo modello permette di coordinare il flusso di informazioni, indirizzando le richieste ed effettuando eventuali trasformazioni tra i dati.

Questa soluzione permette una maggiore sostituibilità dei componenti portando ad implementare solo N interfacce, una per applicazione.

Integrazione con BPMS

Nell’architettura hub-and-spoke, la realizzazione comprende la definizione di alcune regole. Qualora le applicazioni siano numerose, e sia necessario un coordinamento tra le funzionalità che possono variare nel tempo, è possibile usare un applicativo a livello di piattaforma come supporto all’automatizzazione.

Un Business process Management System (BPMS), detto anche Workflow component, consente, tramite dei processi, di gestire lo stato dei flussi informativi e semplifica le modifiche nei moduli applicativi. E’ possibile definire processi di integrazione tramite componenti di automazione consentendo lo scambio di messaggi in maniera integrata.

Architettura a Servizi

Questa architettura si basa sul paradigma dell’architettura orientata ai servizi (SOA) che prevede la realizzazione delle funzionalità in maniera modulare interrogabili tramite il protocollo HTTP.

Questa architettura permette di essere invocata sia internamente che esternamente all’azienda.

I vari servizi hanno un alto livello di disaccoppiamento permettendo l’indipendenza tra servizi. Questa architettura ha anche il vantaggio di funzionare come una scatola nera dove i consumatori necessitano di conoscere solo l’interfaccia per chiamare la funzionalità.

Questo paradigma facilita l’integrazione dato che ciascun componente definisce la propria interfaccia che specifica i servizi offerti dal sistema, quali messaggi vengono scambiati in ingresso e in uscita.

Composizione e Orchestrazione di Servizi

Sevizi diversi possono essere usati in maniera congiunta da una singola applicazione. Bisogna poter quindi comporre un servizio più complesso a partire da servizi atomici.

Per comporre un servizio si usa una service orchestration che determina una sequenza di invocazione per i servizi.

Capitolo Otto: Tecnologie livello Architettura Fisica

Le architetture fisiche si dividono solitamente in centralizzate e distribuite.

In un’architettura centralizzata, tutti i componenti (dita e le applicazioni) sono localizzati in un unico nodo di elaborazione.

Questa era una delle prime soluzioni e presentava solo pochi terminali che interagivano con il software installato sul mainframe.

L’avvento dei personal computer, del modello client/server e delle reti di comunicazione ha portato alla nascita delle architetture distribuite.

Un’architettura si dice distribuita quando una delle seguenti condizioni è verificata:

8.1 Applicazioni Distribuite

Nei sistemi distribuiti i livelli logici (layer) sono distribuiti su una o più macchine detti livelli (tier). A seconda di come avviene la distribuzione dei layer sui tier si possono avere diverse architetture:

Architettura Single Tiered

Questa architettura si basa su un unico nodo di elaborazione che contiene tutti i layer logici.

Questa architettura risulta simile ai mainframe e presenta i seguenti vantaggi: prestazioni elevate, affidabilità, sicurezza e facilità di manutenzione.

Questa architettura presenta però dei limiti in termini di scalabilità e flessibilità.

Architettura Two-Tiered

Questa architettura si basa su due nodi di elaborazione: il client e il server. In questo modo l’elaborazione è divisa tra i due nodi.

In base a come avviene la distribuzione dei layer (Presentazione, Applicativa e Gestione Dati) sui due nodi si possono avere due tipi di architetture:

Architettura Three-Tiered

Questa architettura si basa su tre nodi di elaborazione: il client, un server intermedio (middle tier) e un server per la gestione dei dati.

Un sistema a tre tier conferisce buona scalabilità e flessibilità.

Architettura N-Tiered

Per diminuire il carico sui server e migliorare le prestazioni si possono aggiungere ulteriori nodi di elaborazione dove ognuno si occupa di un compito specifico.

8.2 Scalabilità

Con scalabilità si intende la capacità di un sistema di adattarsi a un aumento di carico.

Esistono due tipologie di scalabilità:

In ambito web si tende a parlare di elasticità del sistema piuttosto che di scalabilità. Un sistema è elastico se è in grado di adattarsi automaticamente alle variazioni di carico.

Server Farm

Una server farm è un insieme di server che condividono un carico di lavoro. Questa soluzione permette di distribuire il carico di lavoro tra i vari server (scale-out).

Le server farm possono essere realizzate secondo due principi:

8.3 Virtualizzazione

La virtualizzazione è una tecnica che permette di creare una versione virtuale di un sistema operativo. Questo permette di:

Le risorse virtuali sono dette macchine virtuali (VM) e sono gestite da un software detto hypervisor.

Questa tecnica permette di avere all’interno della medesima macchina fisica più macchine virtuali, ognuna con la propria applicazione.

8.4 Cloud Computing

Il Cloud Computing è un modello che permette l’accesso a risorse informatiche tramite internet, senza la necessità di possedere fisicamente le risorse.

Le risorse sono offerte da un cloud provider che si occupa della gestione delle risorse, e della manutenzione, che vengono fornite on-demand (solo quando servono).

Il cloud computing si basa su cinque caratteristiche:

Il cloud computing si basa su tre modelli di servizio:

Il cloud computing si basa su quattro modelli di deployment:

Capitolo Nove: Sicurezza

La sicurezza nei sistemi informativi è l’insieme delle misure atte a proteggere i seguenti requisiti:

9.1 Minacce alla Sicurezza

Le minacce alla sicurezza possono essere di vario tipo:

Le minacce logiche nascono dalla presenza di vulnerabilità nel sistema. Una vulnerabilità è una debolezza del sistema che può essere sfruttata da un attaccante per compromettere la sicurezza del sistema. Le vulnerabilità vengono sfruttate da exploit, ovvero tecniche che sfruttano le vulnerabilità per compiere azioni non autorizzate.

Gli attacchi sono azioni che colpiscono le basi di dati, infrastrutture, le reti o dispositivi tramite atti malevoli finalizzati al furto. alterazione o distruzione di elementi, violando le regole d’accesso.

Gli attacchi più comuni a livello di rete sono:

Gli attacchi più comuni a livello applicativo sono:

E’ necessario adottare misure per difendersi da queste minacce che possono essere sia di origine esterna che interna.

9.2 Crittografia

Crittografare significa codificare un messaggio in modo che solo il destinatario possa leggerlo.

I meccanismi si crittografia sa basano sulla presenza di un algoritmo (funzione crittografica) e una chiave. La segretezza della chiava è fondamentale per garantire la sicurezza del messaggio e deve essere scelta tra un vasto numero di combinazioni (spazio delle chiavi) e deve essere cambiata periodicamente (One Time Password OTP).

La sicurezza dipende dalla lunghezza della chiave e dall’ampiezza dei possibili valori della chiave.

La crittografia si divide in due categorie:

Crittografia Simmetrica

Nella crittografia simmetrica mittente e destinatario condividono la stessa chiave segreta K che deve essere condivisa in maniera sicura. Il mittente codifica il messaggio con la chiave segreta e il destinatario lo decodifica con la stessa chiave. Questo tipo di cifratura ha il vantaggio di essere veloce, ma presenta il problema dello scambio della chiave.

graph TD
    subgraph Mittente A
    A[Messaggio] --> |Chiave K| B[Messaggio Cifrato]
    end
    subgraph Destinatario
    B --> |Trasmissione| D[Messaggio Ricevuto]
    D --> |Chiave K| E[Messaggio]
    end

In caso di sniffing, l’attaccante può intercettare numerosi messaggi cifrati ed applicare un’analisi per ricavare la chiave K. Per evitare questo problema si cerca di cambiare spesso la chiave K, tendenzialmente ad ogni sessione.

Le tecniche principali della crittografia simmetrica sono:

Spesso per garantire la sicurezza vengono applicati in blocco sia la sostituzione che la trasposizione.

Per la massima sicurezza la lunghezza della chiave dovrebbe essere uguale alla lunghezza del messaggio da cifrare.

Alcuni esempi sono: DES, 3DES, AES.

Crittografia Asimmetrica

Nella crittografia asimmetrica mittente e destinatario possiedono due chiavi distinte: una chiave pubblica Kpub e una chiave privata Kpriv. Il principio è che un messaggio cifrato con la chiave pubblica può essere decifrato solo con la chiave privata e viceversa.

Per garantire la sicurezza, la chiave pubblica deve essere resa pubblica, mentre la chiave privata deve essere mantenuta segreta e non deve essere possibile risalire alla chiave privata a partire dalla chiave pubblica, e viceversa.

Questo tipo di cifratura è più lenta della simmetrica, ma presenta il vantaggio di non dover scambiare la chiave.

Quando il mittente A vuole inviare un messaggio al destinatario B, cifra il messaggio con la chiave pubblica di B. Solo B potrà decifrare il messaggio con la sua chiave privata.

graph TD
    subgraph Mittente A
    A[Messaggio] --> |Chiave Pubblica B| B[Messaggio Cifrato]
    end
    subgraph Destinatario
    B --> |Trasmissione| D[Messaggio Ricevuto]
    D --> |Chiave Privata B| E[Messaggio]
    end

Questa prima configurazione ha il problema che essendo la chiave di B pubblica, chiunque può cifrare un messaggio per B (man-in-the-middle). Per ovviare a questo problema si può introdurre una fase di autenticazione di A, dove A cifra il messaggio con la propria chiave privata e la chiave pubblica di B. In questo modo B può decifrare il messaggio con la chiave pubblica di A e la propria chiave privata.

graph TD
    subgraph Mittente A
    A[Messaggio] --> |Chiave Privata A| B[Messaggio Cifrato]
    B --> |Chiave Pubblica B| C[Messaggio Cifrato]
    end
    subgraph Destinatario
    C --> |Trasmissione| D[Messaggio Ricevuto]
    D --> |Chiave Privata B| E[Messaggio Cifrato]
    E --> |Chiave Pubblica A| F[Messaggio]
    end

La generazione delle chiavi avviene mediante una semplice funzione matematica che genera due chiavi distinte, ma correlate. E’ importante che la funzione inversa sia difficile da calcolare.

Un esempio di crittografia asimmetrica è RSA che genera le chiavi basandosi sulla fattorizzazione di numeri primi:

  1. Si scelgono due numeri primi elevati p e q
  2. Si calcola n = p * q e z = (p - 1) * (q - 1)
  3. Si sceglie un numero e (con e < n) coprimo con z
  4. Si calcola d tale che (d * e) \mod z \equiv 1
  5. Si definiscono le chiavi pubbliche e private:
    • Chiave Pubblica: (n, e)
    • Chiave Privata: (n, d)

Dato il messaggio da cifrare m e il messaggio cifrato c, la cifratura e decifratura avvengono come segue:

Lo svantaggio della cifratura asimmetrica è la lentezza computazionale. Per ovviare a questo problema si utilizza la cifratura asimmetrica per scambiare in maniera sicura la chiave simmetrica che verrà utilizzata per la comunicazione.

9.3 Integrità e Funzione di Hash

La funzione di hash è una funzione che mappa un input di lunghezza arbitraria in un output di lunghezza fissa chiamato fingerprint, hash o digest.

La funzione di hash deve avere le seguenti proprietà:

Le funzioni di hash sono utilizzate per garantire l’integrità dei dati. Per garantire l’integrità di un messaggio, il mittente calcola l’hash del messaggio e lo invia insieme al messaggio. Il destinatario calcola l’hash del messaggio ricevuto e lo confronta con l’hash ricevuto. Se i due hash coincidono, il messaggio è integro.

graph TD
    subgraph Mittente
    A[Testo] --> |Funzione Hash| B[Hash]
    A --> C[Messaggio]
    B --> C
    end
    subgraph Destinatario
    C --> |Trasmissione| D[Messaggio Ricevuto]
    D --> E[Testo]
    D --> F[Hash Ricevuta]
    E --> |Funzione Hash| G[Hash]
    F --> H{Is Equal}
    G --> H
    H -->|Yes| I[Integro]
    H -->|No| J[Non Integro]
    end

Firma Digitale

La firma digitale è un meccanismo che permette di garantire l’autenticità e l’integrità di un messaggio.

Per creare una firma digitale, il mittente calcola l’hash del messaggio e lo cifra con la propria chiave privata. Il destinatario decifra la firma con la chiave pubblica del mittente e confronta l’hash del messaggio con l’hash ricevuto.

graph TD
    subgraph Mittente
    A[Testo] --> |Funzione Hash| B[Hash]
    B --> |Chiave Privata| C[Firma]
    A --> D[Messaggio]
    C --> D
    end
    subgraph Destinatario
    D --> |Trasmissione| E[Messaggio Ricevuto]
    E --> F[Testo]
    E --> G[Firma]
    G --> |Chiave Pubblica| H[Hash]
    F --> |Funzione Hash| I[Hash]
    I --> J{Is Equal}
    H --> J
    J -->|Yes| K[Integro e Autentico]
    J -->|No| L[Non Integro o Non Autentico]
    end

Gestione delle chiavi

La crittografia necessita di un sistema di gestione delle chiavi che permetta di generare, distribuire, archiviare e distruggere le chiavi.

La Generazione delle Chiavi viene svolto da chi svolgerà le operazioni crittografiche, o in casi particolari da un ente certificatore.

Lo Scambio delle chiavi è un’operazione delicata che deve essere svolta in maniera sicura, soprattutto nella crittografia simmetrica. Una tecnica utilizzata è OOB (Out Of Band) dove la chiave viene scambiata tramite un canale diverso da quello utilizzato per la comunicazione. Altrimenti si può utilizzare la crittografia asimmetrica per scambiare la chiave simmetrica. Nel caso delle chiavi pubbliche, queste vengono distribuite e identificata tramite un certificato rilasciato da un ente certificatore.

I sistemi che si occupano della generazione e della gestione delle chiavi sono dette PKI (Public Key Infrastructure) e si occupano di:

I certificati sono rilasciati da un ente certificatore (CA) e identificano il proprietario della chiave pubblica tramite un Autorità di Registrazione (RA). I certificati vengono poi firmati dalla CA per garantire l’autenticità del certificato.

9.4 Gestione Utenti

Autenticazione

Prima di far accedere un agente al sistema è necessario autenticarlo. L’autenticazione può avvenire tramite:

Un tipo semplice di autenticazione si basa su una coppia username/password. Per aumentare il livello di sicurezza si possono utilizzare tecniche di autenticazione a due fattori (2FA) con meccanismi di challenge-response.

L’autenticazione a più fattori (Multiple Factor Authentication - MFA) si basa sull’utilizzo di più fattori di autenticazione di natura diversa (es. SYK + SYH). Spesso il secondo fattore è un token generato da un’applicazione o inviato tramite SMS ottenuti tramite uno smartphone che funziona come OTP.

Autorizzazione

Dopo aver autenticato un agente, è necessario verificare se l’agente ha l’autorizzazione per svolgere delle funzioni elementari (read, write e execute) su delle date risorse.

Il controllo alle funzioni può essere relativo a diverse risorse come il sistema operativo o un DBMS.

Le creazioni di queste regole crea la politica di sicurezza di un sistema. Queste politiche possono essere i due tipi:

Le regole d’accesso vengono definite con un modello a componenti che si basa su tre componenti: subject, object e right. Questo modello è stato esteso con i constrains che rappresentano dei vincoli d’accesso dipendente dal contenuto.

(subject, object, right, constrain)
Politiche di accesso ai dati

Le politiche di accesso ai dati possono essere di due tipi:

Il primo tipo è detto Discretionary Access Control (DAC) dove l’accesso è basato sulle decisioni dell’owner della risorsa.

Per garantire che queste regole vengano rispettate in un DBMS si possono effettuare due tecniche:

Il secondo tipo è detto Mandatory Access Control (MAC) dove l’accesso è basato su regole di sicurezza definite da un’amministrazione centrale. Questo modello di politica assegna un livello di sensitività a ciascuna risorsa e a ciascun utente un livello di clearance.

Vengono poi definite delle Security Class (SC) in base ad una componente gerarchica, che definisce il livello di sensitività delle risorse, e un insieme di categorie che indicano l’area di appartenenza del dato.

I meccanismi di sicurezza si basano su due principi:

Nei sistemi MAC si realizzano tabelle multi-livello dove ad ogni riga o attributo è associato un attributo detto Tuple Classification (TC) che indica il livello di sensitività della tupla.

field1_name field1_classification field2_name field2_classification tuple_classification
value S value S S
value TS value S TS

Quando si prova ad effettuare l’accesso ad una risorsa il cui livello di sensitività è maggiore del proprio livello di clearance, il sistema può effettuare due azioni:

9.5 Cybersecurity

La cybersecurity è l’insieme delle misure fisiche, logiche e organizzative atte a proteggere i sistemi informativi da attacchi.

Un approccio per proteggersi dagli attacchi è utilizzare una politica di tipo Zero Trust che consiste nel limitare l’accesso alle risorse solo se strettamente necessario.

Con l’avvento del cloud computing e del BYOD (Bring Your Own Device) non esistono dei perimetri di rete e dei dispositivi affidabili di default ed è necessario proteggere i dati e le risorse da attacchi provenienti da dispositivi esterni.

L’approccio Zero Trust si basa su tre principi:

Il sistema effettua dei controlli sulle credenziali dell’utente prima di dare accesso alle risorse. Questo controllo viene poi ripetuto a brevi intervalli di tempo per verificare costantemente l’identità dell’utente.

Il sistema effettua anche dei operazioni di analisi, filtraggio e registrazione per verificare il comportamento delle entità alla ricerca di possibili minacce.

9.6 Meccanismi di sicurezza Infrastrutturali

Firewall

Il firewall è un dispositivo di rete che permette di filtrare il traffico in ingresso e in uscita da una rete. L’adozione di un firewall deve seguire re regole di sicurezza:

I componenti principali di un firewall sono:

I firewall possono essere usati per creare delle DMZ (Demilitarized Zone) che è una zona intermedia tra la rete interna e la rete esterna. Questa zona contiene i servizi che devono essere accessibili dall’esterno, ma che non devono avere accesso alla rete interna.

Intrusion Detection System (IDS)

L’Intrusion Detection System (IDS) è un sistema che permette di rilevare intrusioni monitorando gli eventi in un sistema o in una rete.

Questi dispositivi possono interagire con il firewall per bloccare una connessione da un indirizzo IP sospetto.

Gli IDS si basano su alcuni presupposti:

I componenti funzionali si un IDS sono:

Gli IDS si dividono in due categorie in base al tipo di sensori utilizzati:

Un’altra classificazione può essere svolta in base al tipo di analisi effettuata:

Infine gli IDS possono essere classificati in base al tipo di Response effettuata:

Capitolo Dieci: Progettazione di Sistemi Informativi

La progettazione di un sistema informativo è una fase importante e deve essere svolta in maniera sistematica prendendo in considerazione diversi aspetti: scalabilità, cambiamenti sull’organizzazione e sulle strategie organizzative.

Durante il processo di gestione di un sistema informativo si susseguono diverse fasi in maniera ciclica e iterativa:

graph TD
    A[Pianificazione] --> B[Sviluppo]
    B --> C[Gestione]
    C --> D[Controllo]
    D --> A

Esistono due tipologie di cambiamenti di che possono causare la necessità di cambiare il sistema informativo:

10.1 Pianificazione

La pianificazione comprende due fasi:

Pianificazione strategica

La pianificazione strategica si basa sull’acquisizione di conoscenza del contesto e dello stato attuale dell’azienda. Questa fase si basa su due attività:

Questa fase è supportata dall’identificazione dei business driver, ovvero i fattori che influenzano il business e che devono essere presi in considerazione nella progettazione del sistema. Questi fattori sono solitamente misurabili mediante i KPI (Key Performance Indicator).

I KPI sono utili per misurare l’efficacia e l’efficienza del sistema informativo in base a tre variabili: input, output atteso e output effettivo.

graph TD
    A[Input] --> B[Processo]
    C[Output atteso] --> B
    B --> D[Output effettivo]

I business driver sono solitamente divisi in due categorie:

Studio di Fattibilità

Lo studio di fattibilità è un’analisi preliminare che permette di valutare la fattibilità di un progetto.

Questa fase si basa su tre fasi principali:

Definizione degli Obiettivi e Specifiche Funzionali

Questa fase mira a definire le aree su cui bisogna lavorare delineando i miglioramenti che si vogliono ottenere.

Definite le aree di interesse di descrivono ad alto livello le funzioni che il sistema dovrebbe fornire.

In fine ci si concentra sui vincoli da rispettare definiti da: costo, tempo e qualità. Questi vincoli possono essere ottimizzati a coppia, ma non tutti e tre insieme.

Progettazione della soluzione

La progettazione della soluzione si basa su tre fasi:

  1. Identificazione delle soluzioni: in base alle specifiche e ai vincoli si definiscono delle soluzioni informatiche in grado di soddisfarli. Queste soluzioni possono portare a svolgere due tipologie di analisi:
    • Make or Buy: decidere se sviluppare internamente il sistema (make) o acquistare un sistema già pronto (buy). Sviluppare il proprio sistema permette di avere un sistema su misura, ma richiede tempo e risorse. Acquistare un sistema già pronto (COTS - Commercial Of-The-Shelf) permette di avere un sistema funzionante in tempi brevi, ma potrebbe non soddisfare tutte le esigenze.
    • Sourcing: decidere se affidare lo sviluppo del sistema ad un’azienda esterna (Outsourcing) o svilupparlo internamente (in-house). è possibile anche adottare una soluzione mista che si divide in 6 livelli:
      1. In-House: tutto lo sviluppo è svolto internamente
      2. Servizi Condivisi: l’organizzazione è supportata da un’azienda IT che lavora in collaborazione diretta con l’azienda
      3. Supporto Esterno: l’azienda si gestiscono internamente i sistemi, ma si appoggia ad aziende esterne per la supporto
      4. Consorzio: un gruppo di aziende si unisce per sviluppare un sistema comune dividendo i costi
      5. Outsourcing Selettivo: l’azienda si appoggia ad aziende esterne per lo sviluppo di alcune parti del sistema (solitamente non core)
      6. Outsourcing Completo: l’intera gestione del sistema è affidata ad aziende esterne
  2. Analisi di Fattibilità Tecnica: si descrivono le possibili soluzioni per le esigenze definite. Le soluzioni vengono valutate in base a diversi criteri:
    • Disponibilità: valutare se la soluzione è realizzabile (o acquistabile) nei tempi previsti
    • Maturità tecnologico: valutare se lo stato di vita della tecnologia che si vuole adottare
    • Affidabilità: valutare l’esposizione ai guasti della soluzione individuata
    • Sicurezza: valutare la vulnerabilità della soluzione individuata
    • Scalabilità: valutare la capacità della soluzione di adattarsi a nuove esigenze e quanto costerebbe in termini di risorse
    • Integrazione: valutare la capacità della soluzione di integrarsi con i sistemi esistenti
  3. Valutazione degli Impatti Organizzativi: valutare l’impatto che l’introduzione del nuovo sistema avrà sull’organizzazione.
Valutazione di Convenienza Economica

Le soluzioni proposte devono essere convenienti dal punto di vista economico, ovvero il costo della soluzione deve essere inferiore al beneficio che si otterrà.

I costi devono essere contabilizzati in maniera precisa.

I benefici devono essere tangibili e diretti, quindi monetizzabili. Alcuni benefici possono essere una riduzione dei costi operativi, un aumento della produttività, un aumento dei ricavi, etc.

10.2 Ciclo di Vita del Sistema Informativo

Una volta scelto effettuato lo studio di fattibilità e scelta la soluzione, si passa alla fase di sviluppo del sistema informativo che può variare in base a se si è scelto di sviluppare internamente il sistema o di acquistare un sistema già pronto.

Ciclo di Sviluppo con strategia Make

Il ciclo di sviluppo di un sistema informativo con strategia make si basa su un approccio iterativo basato su diverse fasi:

graph TD
    A[Pianificazione] --> B[Ingegneria dei Requisiti]
    B --> C[Progettazione dell'Interazione]
    C --> D[Progettazione dettagliata e Realizzazione]
    D --> E[Analisi Dettagliata]
    E --> F[Progettazione dettagliata e Realizzazione]
    F --> G[Deployment e Provisioning]
    G --> H[Operation e Management]
    H --> I[Evoluzione]
    I --> B
    I --> A

Ciclo di sviluppo con strategia Buy

In questo caso la difficoltà principale consiste nel selezionare il sistema più adatto alle esigenze dell’azienda.

Bisogna quindi individuare diversi indicatori:

Bisogna effettuare anche una valutazione sul venditore della soluzione presa in esame valutando fattori come la credibilità e la capacità del venditore. Questi parametri vengono valutati in base all’esperienza, la presenza e la reputazione del venditore.

Domande

Domande Capitolo Uno: Dati

  1. Cosa rappresenta la Piramide DIKW e quali sono i suoi livelli?
  2. Qual è la differenza tra dato e informazione?
  3. Come si ottiene la conoscenza secondo la Piramide DIKW?
  4. Cosa si intende per “saggezza” nella Piramide DIKW?
  5. Qual è l’importanza dei dati all’interno di un sistema informativo aziendale?
  6. Come può un dato diventare utile all’interno di un contesto aziendale?
  7. Quali sono le caratteristiche di un dato ben strutturato?
  8. Cosa si intende per “aggregazione dei dati”?
  9. Quali sono le fonti principali dei dati in un sistema informativo?
  10. Come possono i dati provenienti da fonti esterne influenzare le decisioni aziendali?

Domande Capitolo Due: Organizzazioni

  1. Quali sono le risorse interne ed esterne di un’organizzazione?
  2. Descrivi il ciclo di vita delle risorse in un’organizzazione.
  3. Cosa si intende per “processi” in un’organizzazione?
  4. Quali sono i livelli della Piramide di Anthony?
  5. Quali sono le attività primarie e di supporto nel Modello di Porter?
  6. Come si differenziano le attività operative da quelle strategiche?
  7. Qual è l’importanza della pianificazione strategica nelle organizzazioni?
  8. Cosa si intende per “risorse di scambio” e “risorse di struttura”?
  9. Quali sono le principali differenze tra il livello operativo e il livello di pianificazione strategica?
  10. Come influiscono le risorse di gestione sui processi aziendali?

Domande Capitolo Tre: Sistemi Informativi

  1. Cosa si intende per sistema informativo e quali sono le sue componenti principali?
  2. Qual è la differenza tra un sistema informatico e un sistema informativo?
  3. Cosa sono i sistemi operazionali e quali sono le loro caratteristiche?
  4. Qual è il ruolo dei sistemi decisionali in un’organizzazione?
  5. Cosa si intende per OLTP e OLAP?
  6. Quali sono le proprietà FASMI dei sistemi OLAP?
  7. Come vengono organizzati i dati in un sistema OLAP?
  8. Qual è la differenza tra dati operativi e dati strategici?
  9. Cosa si intende per “Business Rules” in un sistema informativo?
  10. Quali sono le principali differenze tra un sistema OLTP e un sistema OLAP?

Domande Capitolo Quattro: Enterprise Architecture (EA)

  1. Cosa si intende per Enterprise Architecture (EA)?
  2. Quali sono gli aspetti analizzati nel Framework di Zachman?
  3. Cosa rappresentano le righe e le colonne nel Framework di Zachman?
  4. Quali sono i punti di vista degli stakeholder nel Framework di Zachman?
  5. Cosa si intende per “viste” nel Framework di Zachman?
  6. Qual è l’importanza dell’analisi dei dati nell’Enterprise Architecture?
  7. Come si integrano i processi aziendali nell’Enterprise Architecture?
  8. Quali sono i principali obiettivi dell’Enterprise Architecture?
  9. Come può l’Enterprise Architecture supportare la pianificazione strategica?
  10. Quali sono le principali differenze tra il modello contestuale e il modello logico nel Framework di Zachman?

Domande Capitolo Cinque: Elementi Tecnologici

  1. Quali sono i livelli tecnologici in un sistema informativo?
  2. Cosa si intende per “portafoglio applicativo”?
  3. Quali sono le principali caratteristiche di un Data Warehouse (DW)?
  4. Cosa si intende per Business Intelligence (BI)?
  5. Qual è il ruolo di un ERP in un’organizzazione?
  6. Quali sono le principali componenti di un CRM?
  7. Cosa si intende per “modularità” in un ERP?
  8. Quali sono le differenze tra CRM operativo, analitico e collaborativo?
  9. Come funziona un sistema di Advanced Planning and Scheduling (APS)?
  10. Quali sono le principali funzionalità di un Manufacturing Execution System (MES)?

Domande Capitolo Sei: Analisi dei Dati

  1. Cosa si intende per Data Warehouse e quali sono le sue componenti principali?
  2. Quali sono le operazioni ETL e perché sono importanti?
  3. Cosa si intende per “Data Cleaning” nel processo ETL?
  4. Quali sono le principali differenze tra un modello MOLAP e un modello ROLAP?
  5. Cosa si intende per “Drill-Down” e “Roll-Up” nell’analisi dei dati?
  6. Quali sono le principali tecniche di Data Mining?
  7. Cosa si intende per “clustering” nel Data Mining?
  8. Quali sono le principali funzioni di Machine Learning nel Data Mining?
  9. Cosa si intende per “Process Discovery” e come viene utilizzato?
  10. Quali sono le principali differenze tra analisi descrittiva e predittiva?

Domande Capitolo Sette: Tecnologie Livello Piattaforma

  1. Quali sono le principali tecnologie di integrazione a livello dati?
  2. Cosa si intende per “middleware” e qual è il suo ruolo nell’integrazione dei dati?
  3. Quali sono i principali modelli di integrazione delle applicazioni?
  4. Cosa si intende per architettura “Hub-and-Spoke”?
  5. Qual è il ruolo di un BPMS nell’integrazione delle applicazioni?
  6. Cosa si intende per “architettura orientata ai servizi” (SOA)?
  7. Quali sono i principali vantaggi di un’architettura a servizi?
  8. Cosa si intende per “orchestrazione di servizi”?
  9. Quali sono le principali differenze tra integrazione a livello dati e integrazione a livello di logica applicativa?
  10. Quali sono i principali problemi legati all’integrazione dei dati?

Domande Capitolo Otto: Tecnologie Livello Architettura Fisica

  1. Quali sono le principali differenze tra architetture centralizzate e distribuite?
  2. Cosa si intende per “architettura single-tiered”?
  3. Quali sono i vantaggi e gli svantaggi di un’architettura two-tiered?
  4. Cosa si intende per “scalabilità verticale” e “scalabilità orizzontale”?
  5. Quali sono le principali caratteristiche di una server farm?
  6. Cosa si intende per “virtualizzazione” e quali sono i suoi vantaggi?
  7. Quali sono i principali modelli di servizio nel cloud computing?
  8. Cosa si intende per “IaaS”, “PaaS” e “SaaS”?
  9. Quali sono i principali modelli di deployment nel cloud computing?
  10. Quali sono le principali differenze tra un cloud pubblico e un cloud privato?

Domande Capitolo Nove: Sicurezza

  1. Quali sono i principali requisiti di sicurezza in un sistema informativo?
  2. Cosa si intende per “integrità” e “riservatezza” dei dati?
  3. Quali sono le principali minacce alla sicurezza dei sistemi informativi?
  4. Cosa si intende per “vulnerabilità” e “exploit”?
  5. Quali sono i principali attacchi a livello di rete?
  6. Cosa si intende per “crittografia simmetrica” e “crittografia asimmetrica”?
  7. Quali sono le principali differenze tra crittografia simmetrica e asimmetrica?
  8. Cosa si intende per “funzione di hash” e qual è il suo ruolo nella sicurezza?
  9. Quali sono i principali meccanismi di autenticazione e autorizzazione?
  10. Cosa si intende per “Zero Trust” e quali sono i suoi principi?

Domande Capitolo Dieci: Progettazione di Sistemi Informativi

  1. Quali sono le principali fasi del ciclo di vita di un sistema informativo?
  2. Cosa si intende per “pianificazione strategica” nella progettazione di un sistema informativo?
  3. Quali sono i principali obiettivi di uno studio di fattibilità?
  4. Cosa si intende per “make or buy” nella progettazione di un sistema informativo?
  5. Quali sono i principali criteri per la valutazione di una soluzione tecnologica?
  6. Cosa si intende per “sourcing” e quali sono i suoi livelli?
  7. Quali sono i principali indicatori funzionali nella scelta di un sistema informativo?
  8. Cosa si intende per “ciclo di sviluppo iterativo”?
  9. Quali sono le principali differenze tra sviluppo interno e acquisto di un sistema informativo?
  10. Quali sono i principali costi da considerare nella progettazione di un sistema informativo?
Ultima modifica:
Scritto da: Andrea Lunghi